Wearable computer with fitness machine connectivity for improved activity monitoring using caloric expenditure models

ABSTRACT

In an embodiment, a method comprises: establishing, by a wireless wearable computer worn by a user, a wireless communication connection with a fitness machine; obtaining machine data from the fitness machine while the user is engaged in a workout session on the fitness machine; obtaining, from a heart rate sensor of the wireless device, heart rate data of the user; determining a work rate caloric expenditure by applying a work rate calorie model to the machine data; determining a calibrated maximal oxygen consumption of the user based on the heart rate data and the work rate caloric expenditure; determining a heart rate caloric expenditure by applying a heart rate calorie model to the heart rate data and the calibrated maximal oxygen consumption of the user; and sending to the fitness machine via the communication connection, at least one of the work rate caloric expenditure or the heart rate caloric expenditure.

CROSS-RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/129,664, filed Sep. 12, 2018, which is a continuation-in-part of U.S.patent application Ser. No. 15/613,131, filed Jun. 2, 2017, for“Wearable Computer With Fitness Machine Connectivity for ImprovedActivity Monitoring,” and also claims the benefit of priority of U.S.Provisional Patent Application No. 62/697,386, filed Jul. 12, 2018, for“Wearable Computer With Fitness Machine Connectivity for ImprovedActivity Monitoring Using Caloric Expenditure Models,” which patentapplications are each incorporated by reference herein in its entirety.

TECHNICAL FIELD

This disclosure relates generally to activity monitoring using wearablecomputers.

BACKGROUND

Some wearable computers (e.g., smartwatch, fitness band) include afitness application that uses a digital pedometer to track a user'sdaily movements and provide custom notifications related to progress andworkout results, such as distance traveled and calories burned. Somefitness applications also monitor the user's heart rate, which can beused to calculate calories burned. A typical digital pedometer relies onaccelerometer data from an accelerometer to determine when a step istaken. If the wearable computer is worn on the wrist, accelerations dueto arm swing are used to determine step counts. These steps counts canbe inaccurate (e.g., due to irregular or muted arm swings) resulting ininaccurate distance traveled measurements. The heart rate can bemeasured using an optical sensor embedded in the wearable computer.

When a user works out in a gym, they will often use a fitness machinethat includes a processor that monitors the workout and generatesfitness metrics summarizing the workout. For example, a treadmill maydisplay to the user the total distance traveled, elapsed time and totalcalories burned during the workout. The total distance traveled istypically accurate because it is based on rotation of the treadmillmotor shaft rather than accelerometer data, but the total caloriesburned is often an estimate based on a model that does not include theactual heart rate of the user, or in the case of anaerobic calorie burn,cannot be observed through the heart rate.

SUMMARY

Embodiments are disclosed for a wireless wearable computer with fitnessmachine connectivity for improved activity monitoring using caloricexpenditure models. In an embodiment, a method comprises: establishing,by a processor of a wireless wearable computer worn by a user, awireless communication connection with a fitness machine; obtaining, bythe processor using the communication connection, machine data from thefitness machine while the user is engaged in a workout session on thefitness machine; obtaining, from a heart rate sensor of the wirelessdevice, heart rate data of the user; determining, by the processor, awork rate caloric expenditure by applying a work rate calorie model tothe machine data; determining, by the processor, a calibrated maximaloxygen consumption of the user based on the heart rate data and the workrate caloric expenditure; determining, by the processor, a heart ratecaloric expenditure by applying a heart rate calorie model to the heartrate data and the calibrated maximal oxygen consumption of the user; andsending, by the processor to the fitness machine via the communicationconnection, at least one of the work rate caloric expenditure or theheart rate caloric expenditure.

Other embodiments can include an apparatus, computing device andnon-transitory, computer-readable storage medium.

The details of one or more implementations of the subject matter are setforth in the accompanying drawings and the description below. Otherfeatures, aspects and advantages of the subject matter will becomeapparent from the description, the drawings and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an operating environment for an improved activitymonitoring system that includes a wearable computer wirelessly connectedto a fitness machine, according to an embodiment.

FIG. 2 is a block diagram of an example activity monitoring system forimproved activity monitoring using wearable computer data combined withfitness machine data, according to an embodiment.

FIG. 3 is an example process flow for connecting a wearable computerwith a fitness machine, according to an embodiment.

FIG. 4 is a swim lane diagram of example connection establishmentprocedures, according to an embodiment.

FIG. 5 is a state diagram illustrating an example state machineimplemented by a fitness machine processor for connecting andestablishing a session with a wearable computer, according to anembodiment.

FIG. 6 is a flow diagram of an example process performed by a wearablecomputer for calculating fitness data, according to an embodiment.

FIG. 7 is a flow diagram of an example process performed by a wearablecomputer to calibrate a digital pedometer, according to an embodiment.

FIG. 8A is a block diagram of a data flow performed by a wearablecomputer for determining calories burned based on data from a treadmill,according to an embodiment.

FIG. 8B is a block diagram of a data flow performed by a wearablecomputer for determining calories burned based on data from anelliptical, indoor bike, rower or stair climber, according to anembodiment.

FIG. 9 is a flow diagram of an example process performed by a wearablecomputer to determine calories burned based on machine data from afitness machine, according to an embodiment.

FIG. 10 is example wearable computer architecture for a wearablecomputer implementing the features and operations described in referenceto FIGS. 1-9 .

DETAILED DESCRIPTION Example Operating Environment

FIG. 1 illustrates an operating environment 100 for an improved activitymonitoring system that includes wearable computer 102 wirelesslyconnected to fitness machine 101, according to an embodiment. User 100is wearing computer 102 on her wrist while she runs on fitness machine101, which in this example is a treadmill. Other examples of fitnessmachines include but are not limited to: cross-trainers (ellipticaltrainers), step/stair climbers, indoor bikes, indoor rowing machines andskiing machines. Wearable computer 102 can be a smart watch, fitnessband, chest band, headband, earbud, activity/fitness tracker, headset,smart glasses, or any other wearable computer capable of communicatingwith fitness machine 101 and calculating a fitness metric. Wearablecomputer 102 establishes a bi-directional, wireless communicationsession 103 with a processor in fitness machine 101 using a wirelesscommunication protocol. In an embodiment, session 103 can be a Bluetoothsession or near field communication (NFC) session, which can beestablished using a “pairing” process, as described in reference toFIGS. 4 and 5 . In an embodiment, fitness machine 101 is authenticatedand the user's consent to share data is confirmed before bi-directionaldata sharing is allowed between wearable computer 102 and fitnessmachine 101.

Wearable computer 102 includes a processor and memory that includesinstructions for running a fitness application that can be executed bythe processor. The fitness application runs on wearable computer 102during the user's workout session on fitness machine 101. A processor infitness machine 101 monitors the workout session and computes variousdata (hereinafter referred to as “machine data”) related to the workoutsession, including but not limited to: total energy used, total distancerun, elapsed time, instantaneous speed, average speed, inclination andpositive elevation gain. The machine data is transferred over link 103to computer 102 where it is used by the fitness application, togetherwith data known to computer 102 (hereinafter referred to as “wearablecomputer data,”) to calculate one or more fitness metrics, such ascalories burned. As described in further detail below, wearable computer102 can include a heart rate monitor for determining the user's heartrate, which can be combined with machine data to determine caloriesburned.

During the workout session, one or more fitness metrics calculated bywearable computer 102 are transferred back to fitness machine 101 wherethe metrics are displayed on a monitor of fitness machine 101. Duringthe workout session and/or after the workout session ends, a workoutsummary including the fitness metrics is transferred to computer 102.The user can view the details of the workout session at any time onfitness machine 101, or on wearable computer 102. In an embodiment,wearable computer 102 displays an in-session view with metrics receivedfrom fitness machine 101, as well as heart rate and calories(total/active) computed by wearable computer 102. The user can usecomputer 102 to transfer the workout summary to another device bysyncing directly with the other device or indirectly through a network(e.g., the Internet). In an embodiment, the workout session summary canbe shared with other user devices in the gym through a wireless localarea network (WLAN) or a multi-peer ad hoc mesh network. In this manner,users can compare their fitness metrics with friends, trainers and otherindividuals for a particular fitness machine while in the gym. In anembodiment, and with the consent of users, anonymous summary data can beprocessed by a server computer to provide workout statistics for aparticular fitness machine over a large sample set. Such statistics canbe used by gym operators, fitness machine manufacturers and otherinterested entities to determine what machines are most popular, theaverage time spent on a machine and other useful information.

In addition to calculating fitness metrics, wearable computer 102 canuse machine data to calibrate a digital pedometer running on wearablecomputer 102. For example, the total distance traveled during a workoutsession computed by fitness machine 101 can be used with an estimateddistance traveled during the workout session based on pedometer stepcount to determine a calibration factor (e.g., a ratio of the twonumbers). The calibration factor can be used to scale the estimateddistance traveled calculated by computer 102 to correct out the error inthe estimate.

Example System

FIG. 2 is a block diagram of an example activity monitoring system forimproved activity monitoring using wearable computer data combined withfitness machine data, according to an embodiment. System 200 can beimplemented in wearable computer 102, such as a smartwatch or fitnessband. System 200 includes wireless interface 201, motion sensor(s) 202(e.g., accelerometers, gyros, magnetometer), fitness application 203,digital pedometer 204, activity data 205, physiological sensor(s) 206and pedometer data 207. System 200 can be wired or wirelessly coupled tonetwork 212 through WLAN access point 208 (e.g., a Wi-Fi router) totransfer data and/or sync with activity data 211 through network servercomputers 210.

In an embodiment, wireless interface 201 includes a wireless transceiverand other hardware (e.g., an antenna) and software (e.g., a softwarecommunication stack) for establishing, maintaining and ending a wirelesscommunication session with fitness machine 101, as described inreference to FIG. 1 . In an embodiment, wireless interface 201 can alsobe configured to establish, maintain and end a wireless communicationsession with WLAN access point 208, and/or other devices 213 through amulti-peer ad hoc mesh network.

In an embodiment, motion sensors, such as accelerometers provideacceleration data that can be used by digital pedometer 204 to determinestep count and calculate an estimated distance traveled based on thestep count and a stride length of the user. The stride length can bebased on an average stride length for the user given the gender andheight of the user, or it can be determined automatically based onsensor data. Pedometer data 207 including step count and distancetraveled can be stored on wearable computer 102 (e.g., stored in flashmemory).

Fitness application 203 can be a software program that is executed byone or more processors of wearable computer 102. Fitness application 203use pedometer data 207 to track a user's daily movements and providecustomize notifications related to progress and workout results, such asdistance traveled and calories burned. Fitness application 203 alsomonitors the user's heart rate and other physiology of the user, whichcan be calculated from sensor data provided by physiological sensor(s)206. Some examples of physiological sensors 206 include but are notlimited to: heart rate (pulse) sensors, blood pressure sensors, skintemperature and/or conductance response sensors and respiratory ratesensors. In an embodiment, physiological sensor(s) 206 include a heartrate sensor comprising a number of light emitting diodes (LEDs) pairedwith photodiodes that can sense light. The LEDs emit light toward auser's body part (e.g., the user's wrist), and the photodiodes measurethe reflected light. The difference between the sourced and reflectedlight is the amount of light absorbed by the user's body. Accordingly,the user's heart beat modulates the reflected light, which can beprocessed to determine the user's heart rate. The measured heart ratecan be averaged over time to determine an average heart rate.

A heart rate monitor (HRM) does not measure caloric expenditure. Rather,the HRM estimates caloric expenditure during steady-state cardiovascularexercise using a relationship between heart rate and oxygen uptake(VO₂). A commonly accepted method for measuring the calories burned fora particular activity is to measure oxygen uptake (VO₂). Duringsteady-state aerobic exercise, oxygen is utilized at a relativelyconsistent rate depending on the intensity of the exercise. There is anobservable and reproducible relationship between heart rate and oxygenuptake. When workload intensity increases, heart rate increases and viceversa. If the user's resting heart rate, maximum heart rate, maximumoxygen uptake and weight are known, caloric expenditure can be estimatedbased on a percentage of their maximum heart rate or a percentage oftheir heart rate reserve.

The metabolic equivalent of tasks (MET) is the ratio of the rate ofenergy expended during a specific physical activity to the rate ofenergy expended at rest. By convention, the resting metabolic rate (RMR)is 3.5 ml O₂·kg⁻¹·min⁻¹, and 1 MET is defined by Equation 1:

$\begin{matrix}{{1{MET}} = {{1\frac{kcal}{{kg}*h}} = {{{4.1}84\frac{kJ}{{kg}*h}} = {{1.1}62{\frac{W}{kg}.}}}}} & \lbrack 1\rbrack\end{matrix}$

Using Equation [1], a 3 MET activity expends 3 times the energy used bythe body at rest. If a person does a 3 MET activity for 30 minutes shehas done 3×30=90 MET-minutes of physical activity. Since the rate ofenergy expenditure is dependent on the intensity of the physicalactivity, it follows that the energy expenditure is also dependent onthe type of fitness machine used in the workout session. For example, avigorous jog on a treadmill may have a MET greater than 6 and a lightworkout on a stationary indoor bike may have a MET of 3 or less.

In an embodiment, a look-up table of MET values can be stored asactivity data 211. During a workout session, fitness machine 101 sendsmachine data includes the fitness machine type that can be used byfitness application 203 to identify the physical activity and select asuitable MET for the physical activity. For example, if the fitnessmachine type indicates a treadmill, then a MET that is suitable forjogging on a treadmill can be selected for calculation of caloriesexpended C using Equation [2]:C=MET×time(minutes)×weight(kg),  [2]where MET is the MET associated with a particular fitness activity andcan be retrieved from, for example, a look-up table stored by wearablecomputer 102.

Published MET values and values used by fitness machines for specificphysical activities are often averages that are experimentally orstatistically derived from a sample of people. The level of intensity atwhich the user performs a specific physical activity (e.g., walkingpace, running speed) will deviate from the average MET values. Topersonalize caloric expenditure to the user, a more accurate model canbe used on wearable computer 102 to calculate caloric expenditure, asdescribed in reference to FIGS. 8 and 9 .

Example Use Cases

FIG. 3 is an example process flow 300 for connecting a wearable computerwith a fitness machine, according to an embodiment. There are four usecases for connecting a wearable computer with a fitness machine: 1) theuser pairs first with the fitness machine, then starts their workout, 2)the user starts their workout with the wearable computer and then pairswith the fitness machine, 3) the user starts their workout with thefitness machine and then pairs with the wearable computer, and 4) theuser has simultaneous workouts on the wearable computer and the fitnessmachine. Each use case will be described in turn.

In the first use case, the user visits the gym and finds a fitnessmachine with a badge (e.g., an RFID tag) indicating the machine can bepaired to a wearable computer, which in this example is a smartwatchstrapped to the user's wrist. The user starts a new workout session(301) by placing their wearable computer near the badge to beginpairing. When the wearable computer is near the badge (e.g., less 10 cm)its proximity to the badge is detected using, for example, magneticinduction between loop antennas located in the wearable computer and thebadge.

If it is the user's first time pairing with the fitness machine, theuser is requested to consent to share data (303) with the fitnessmachine. The request for consent can be in the form of a GUI affordancepresented on a display of the wearable computer. If the user has alreadyconsented (e.g., based on a previous connection with the fitnessmachine), the user will be requested to pair with the fitness machine.Since, in this first use case, the user is not in a current workoutsession, step 302 is not applicable. If the user agrees to pair, apairing/authentication process begins (305). If an error occurs duringthe pairing/authentication the error is reported to the user (304). Anerror can be due to a connection failure and/or an authenticationfailure.

Since personal physiological data is being transferred to a publicfitness machine, the wearable computer and fitness machine perform anauthentication procedure before sharing of the user's personal fitnessdata is allowed. During the authentication process, and in an embodimentthat uses public-private key encryption, the fitness machine generatesand securely stores a public key-private key pair, which can be in theformat of elliptical curve digital signature algorithm (ECDSA) or anyother suitable digital signature algorithm. The fitness machine thencalculates a message digest (e.g., a SHA256 message digest) using theprivate key and other data. The other data can be, for example, a randomnumber, a connection confirmation value, local name data, etc. Thefitness machine then uses the encoded public key and message digest toperform the authentication process. Upon successful authentication ofthe fitness machine, the wearable computer and fitness machine beginpairing.

After successful pairing, the user begins the physical workout on thefitness machine (306) by, for example, starting the machine (e.g.,starting the treadmill). During the workout session, the wearablecomputer displays an affordance indicating that the wearable computerand fitness machine are paired and the workout session is active. Duringan active workout session all of the current metrics are displayed bythe wearable computer. If the fitness machine is paused, the workoutsession on the wearable computer is also paused, and the wearablecomputer displays a GUI stating that the workout on the wearablecomputer cannot pause. If the pause is extended (307) (e.g., more than1.5 minutes), the workout session ends (309) and a workout sessionsummary is displayed to the user (310). If the wearable computer becomesdisconnected from the fitness machine during the workout session, thewearable computer reports to the user that it has disconnected from thefitness machine. If the disconnect is extended (308) (e.g., more than1.5 minutes), the workout session ends (309) and a workout sessionsummary is displayed to the user (310). In an embodiment, a GUIaffordance is displayed by the wearable computer that allows the user todisconnect and end the active workout session on the wearable computerwithout effecting the workout on the fitness machine.

In the second use case, the user is already in a workout session ontheir wearable computer. For example, the user may have entered the gymafter an outdoor run with a workout session running on their wearablecomputer. In this second use case, the user starts a new workout session(301) by placing the wearable computer near the badge on the fitnessmachine. In an embodiment, if the user already consented to share data,the user is prompted with an affordance to end and save the currentworkout session and begin pairing with the fitness machine. If the useragrees, the current workout session is terminated and saved (302) andthe pairing/authentication process begins (305). If the user does notagree, the pairing/authentication is not performed and the currentworkout session remains active on the wearable computer. In anembodiment, the current workout session is automatically terminated andsaved by the wearable computer, and a pairing screen is displayed on thewearable computer.

After a successful pairing/authentication process, the user begins thephysical workout (306). When the new workout session ends (309)(including by extended pause 307 or extended disconnect 308), data fromboth the previous and current workout sessions are displayed in aworkout session summary (310).

In an embodiment, if the user did not consent to share data, the user isprompted with a GUI affordance requesting the user's consent to sharedata (303), end and save their current workout session and begin thepairing/authentication process. If the user consents to share data, thecurrent workout session is terminated and saved (302) and thepairing/authentication process begins (305). If the user does notconsent to share data, the pairing/authentication process ends and thecurrent workout session remains active on the wearable computer. In anembodiment, the current workout session is automatically terminated andsaved by the wearable computer, and a pairing screen is displayed on thewearable computer.

In the third use case, the user starts a new workout session (301) onthe fitness machine but not the wearable computer. During the workoutsession, the user notices the badge and places their wearable computernear the badge. If the user already consented to share data, the user isprompted to pair. If the user agrees to pair, the pairing/authenticationprocess begins (305). If the pairing/authentication process issuccessful, the wearable computer and fitness machine are paired. Theuser can continue their physical workout on the fitness machine (306).The fitness data accrued by the user on the fitness machine is ingestedinto the wearable computer so that the user does not lose any data, eventhough they may have started the workout session on the wearablecomputer after they started the workout session on the fitness machine.When the workout session ends (309) (including by extended pause 307 orextended disconnect 308), a summary of the workout session is displayed(310).

If the user did not previously consent to share data, the user isrequested to consent (303). If the user consents, pairing begins (305).If the pairing/authentication process is successful, the wearablecomputer and fitness machine are paired. The user continues the physicalworkout on the fitness machine (306). When the workout session ends(309) (including by extended pause 307 or extended disconnect 308) asummary of the workout session is displayed (310). If the user does notconsent to share data, pairing/authentication is not performed and theuser can continue with the physical workout on the fitness machinewithout the wearable computer running a workout session.

In the fourth use case, the user is simultaneously engaged in a fitnessmachine workout and a wearable computer workout. The user starts a newworkout (301) by placing their wearable computer near a badge on thefitness machine. In an embodiment, if the user has already consented toshare data, the user is prompted to end and save their current workoutand begin pairing. If the user agrees, the current workout is terminatedand saved (302) and pairing/authentication begins (305). If the userdoes not agree, the pairing/authentication process is not performed. Inan embodiment, the current workout session is automatically terminatedand saved by the wearable computer, and a pairing screen is displayed onthe wearable computer. If the pairing/authentication process issuccessful, the wearable computer and fitness machine are paired. Whenthe new workout session ends (309) (including by extended pause 307 orextended disconnect 308), both the summary of the previously savedworkout session and the new workout session are displayed (310).

If the user has not consented to share data, the user is requested toend and save the current workout session (302) and consent to sharingdata (303), if the user agrees, the current workout session ends, asummary of the workout session is saved and pairing begins (305). If thepairing/authentication process is successful, the user begins the newworkout (306). When the new workout session ends (309) (including byextended pause 307 or extended disconnect 308), a summary of the savedworkout session and the new workout session are displayed (310).

FIG. 4 is a swim lane diagram illustrating example connectionestablishment procedures using NFC, according to an embodiment. In thediagram there are three actors including user 401, wearable computer 402and fitness machine 403. Each step in the diagram is indicated by aletter, starting with the letter “a” and ending with the letter “q”.

The connection establishment procedures begin when user 401 signals tofitness machine 403 their intent to pair with fitness machine 403 (step“a”) by placing the wearable computer near the badge on the fitnessmachine.

During a timed connecting interval T_(connectionReady), fitness machine403 is detected by wearable computer 402 (step “b”), wearable computer402 sends a SessionID (e.g., a unique number per pairing attempt) andout-of-band (OOB) secret data (unique per connection) to fitness machine403 (step “c”) and fitness machine 403 calculates an identify digitalsignature (step “d”) using for example, ECDSA. In an embodiment, the OOBsecret data can comply with Security Manager Specification of BluetoothCore Specification, Volume 3, Part H. Fitness machine 403 can include anNFC reader for reading the SessionID and OOB secret data.

During a timed discovery interval T_(discovery), fitness machine 403advertises a fitness machine service (FTMS) and the Session ID (step“e”). Wearable computer 402 discovers fitness machine 403 via theadvertisement (step “f”) and provides a public key and signature request(step “g”).

Fitness machine 403 sends to wearable computer 402 the public key and asignature response (step “h”). Wearable computer 402 sends a consentrequest to user 401 (step “i”), user 401 grants the request (step “j”).

During a timed pairing interval T_(pair), wearable computer 402 sends anOOB pairing request (step “k”) to fitness machine 403 and fitnessmachine 403 sends an OOB pairing response to wearable computer 402 (step“l”).

During a timed authentication interval T_(accessoryAuth), wearablecomputer 402 sends an authentication challenge to fitness machine 403(step “m”) and receives an authentication response from fitness machine403 (step “n”).

Upon successful authentication, user 401 starts the workout (step “o”),machine data (e.g., fitness machine type, total energy used, elapsedtime, total distance) is sent to wearable computer 402 (step “p”) andfitness data (e.g., instantaneous and average heart rate, active andtotal calories) is sent from wearable computer 402 to fitness machine403 (step “q”). The data is communicated using, for example, NFC orBluetooth standard protocols (e.g., Bluetooth Core Specification version4.2, NFC Suite B version 1.0).

FIG. 5 is a diagram illustrating an example state machine 500implemented by a fitness machine processor for connecting andestablishing a session with a wearable computer, according to anembodiment. Each state is indicated by a letter, starting from “a” andending with “f”.

The fitness machine starts in a discovery state 501 (state “a”) wherethe fitness machine is idle and its NFC reader is ready to rea a user'stag. When a user intent to connect is detected (“tap”), state 501transitions to connectable advertising state 502 (state “b”) and thefitness machine advertises at a timed interval T_(connectionAdv).Included in the advertising packet is the SessionID and FTMS. When apairing request is received from a wearable computer, state 502transitions to pairing state 503 (state “c”). In state 503, the fitnessmachine responds to an identity verification request, authenticationchallenge and pairing request.

When pairing is complete, state 503 transitions to connecteddiscoverable state 504 (state “d”), where the fitness machine is pairedto the wearable computer. If the link is lost, connected discoverablestate 504 transitions to a disconnected advertising state 505 (step“e”). In state 505, the fitness machine is no longer able to communicatewith the wearable computer and starts advertising as non-discoverable tofacilitate reconnection. When a reconnect time T_(reconnect) expires,disconnected advertising state 505 transitions to unpairing state 506(step “f”). In state 506, the fitness machine deletes its currentpairing record.

If the fitness machine is in the connected discoverable state 504, andthe user initiates disconnect, the connected discoverable 504transitions to the unpairing state 506. If the fitness machine is in thedisconnected advertising state 505, and the wearable computer initiatesa reconnect, the disconnected advertising state 505 transitions to thedisconnected discoverable state 504. If the fitness machine is in thepairing state 503, and a pairing time T_(pair) expires, the pairingstate 503 transitions to the discoverable state 501. If the fitnessmachine is in the connectable advertising state 502, and a discoverytime T_(discovery) expires, the connectable advertising state 502transitions to the discoverable state 501.

In an embodiment, the user may determine how pairing will operate ontheir wearable computer. The user can select various pairing optionsusing one or more GUI affordances or hardware input mechanisms. Forexample, a switch can allow the user to turn auto pairing on and off.Auto pairing is where the user does not have to say yes to pair if theyhave accepted pairing with a fitness machine in the past. Another switchallows the user to select automatic pairing to be always turned on orturned on only when the user has launched the fitness application on thewearable computer. If automatic pairing is only allowed when the workoutapplication is launched, the user will have to launch the workoutapplication to pair with a fitness machine. In an embodiment, if thewearable computer determines that the user has completed at least oneworkout session on the wearable computer, then automatic pairing remainsturned on regardless of whether or not the fitness application islaunched. If the user has not completed a workout session, the user willneed to launch the fitness application to turn on automatic pairing.

In an embodiment, a GUI affordance or hardware input mechanism can beused to clear a particular fitness machine, or all fitness machines,listed in a pairing record stored on the wearable computer. If, however,the wearable computer was paired with a particular fitness machine inthe past, and the user attempts to pair within x days (e.g., 90 days)from the last pairing, the wearable computer will auto-connect with thefitness machine. Otherwise, the user will be prompted to perform apairing/authentication process with the fitness machine, as described inreference to FIGS. 3-5 .

FIG. 6 is a flow diagram of an example process performed by a wearablecomputer for calculating fitness data, according to an embodiment.Process 600 can be implemented by architecture 600, as described inreference to FIG. 8 .

Process 600 can begin by establishing wireless communication with afitness machine (601). For example, a Bluetooth or NFC session can beestablished with the fitness machine, as described in reference to FIGS.3-5 . A unique SessionID and OOB secret data can be calculated on thewearable computer and sent to the fitness machine for use in pairing andauthentication.

Process 600 continues after pairing by obtaining machine data from thefitness machine (602). After successful pairing and authentication,machine data can be transferred to the wearable computer using Bluetoothor NFC session data packets. The machine data can include, for example,data that describes the fitness machine, including but not limited to:manufacturer name, model number, hardware revision, software revision,vendor ID, product ID. Additionally, various fitness metrics can beincluded in the machine data, such as total energy, total distance andelapsed time. Some fitness metrics for different types of fitnessmachines is described in Table I below.

TABLE I Fitness Machine Metrics Fitness Machine Metric Units ResolutionTreadmill Total Energy kilo calories 1 kilo calorie Total Distancemeters 1 meter Elapsed Time seconds 1 second Instantaneous Speedkilometers per hour 0.01 kilometer per hour Average Speed kilometers perhour 0.01 kilometer per hour Inclination percent grade 0.1 percent gradePositive Elevation Gain meters 0.1 meters Cross Trainer Total Energykilo calories 1 kilo calories Total Distance meters 1 meter Elapsed Timeseconds 1 second Positive Elevation Gain meters 1 meter Stride Count — 1Resistance Level — 1 Instantaneous Power watts 1 watt Step/Stair ClimberTotal Energy kilo calories 1 kilo calorie Elapsed Time seconds 1 secondPositive Elevation Gain meters 1 meter Floors — 1 Stride/Step Count — 1Indoor/Stationary Bike Total Energy kilo calories 1 kilo calorie TotalDistance meters 1 meter Elapsed Time seconds 1 second InstantaneousCadence — 0.5 Average Cadence — 0.5 Resistance Level — 1 InstantaneousPower watts 1 watt Average Power watts 1 watt Rowing Machine TotalEnergy kilo calories 1 kilo calorie Total Distance meters 1 meterElapsed Time seconds 1 second Stroke Count — 1 Resistance Level — 1Instantaneous Power watts 1 watt

Process 600 continues by determining a workout session according to themachine data (603). Based on the machine data, the wearable computerlearns the specific physical activity the user will be engaged in duringthe workout session. For example, if the fitness machine is a treadmillthen the wearable computer will know what fitness metrics may bereceived from the fitness machine and how to calculate fitness data forthe workout. This can include adjusting parameters of a calorie model,such as, for example, determining an appropriate MET for calculatingcalorie expenditure.

Process 600 continues by initiating a workout session (604). Forexample, the user starts the fitness machine. Process 600 continues byobtaining, during the workout, the user's physiological data (605). Thephysiological data can be any data that measures the physiology of theuser during the workout, including but not limited to: heart ratesensors, pulse detectors, blood pressure sensors, skin temperatureand/or conductance response sensors, respiratory rate sensors, etc. Thesensors can be included in any suitable housing, including but notlimited to: a smartwatch or watchband, fitness band, chest band,headband, finger clip, ear clip, earbud, strapless heart rate monitor,etc.

Process 600 continues by determining fitness data, during the workoutsession, for the user based on the physiological data, machine data anduser characteristic(s) (606). For example, calories burned can becalculated using knowledge of the physical activity, the total energy,total distance, elapsed time any other data shown in Table I that can beused in a calorie expenditure model. Any suitable calorie expendituremodel can be used, including models that are dependent on MET and notdependent MET, and models that include any type and combination of usercharacteristics, such as height, weight, age and gender.

Process 600 continues by sending the fitness data, during the workoutsession, to the fitness machine (607). After calculating the fitnessdata, the wearable computer sends the fitness data to the fitnessmachine where it can be displayed on a monitor of the fitness machine.In an embodiment, the fitness data is also stored on the wearablecomputer. The stored fitness data can be synced to another deviceincluding a network-based server computer and shared with other devicesthrough a client-server architecture. In an embodiment, the fitness datacan be shared directly with other devices (e.g., devices owned byfriends, trainers, etc.) in a multi-peer ad hoc mesh network.

FIG. 7 is a flow diagram of an example process 700 performed by awearable computer to calibrate a digital pedometer, according to anembodiment. Process 700 can be implemented by architecture 700, asdescribed in reference to FIG. 8 .

Process 700 begins by establishing wireless communication with a fitnessmachine (701). For example, a Bluetooth or NFC session can beestablished with the fitness machine, as described in reference to FIGS.4 and 5 .

Process 700 continues by launching a pedometer calibration applicationon the wearable computer (702). The pedometer application can measurestep counts based on sensor data, such as accelerometer data provided byan accelerometer on the wearable computer.

Process 700 continues by obtaining machine data from the fitness machine(703). After a successful pairing/authentication process, the fitnessmachine can send data to the wearable computer that indicates thespecific physical activity engaged in by the user during the workout.Additionally, the machine data can include information that can be usedto calibrate the digital pedometer, such as total distance data from atreadmill.

Process 700 continues by obtaining pedometer data (704). Pedometer datacan include step count or distance traveled which can be calculated fromthe step count and the user's stride length.

Process 700 continues by determining a pedometer calibration factorbased on the machine data and the pedometer data (705). For example, aratio can be formed from the total distance provided in the machine dataover the estimated distance provided by the digital pedometer. The ratiocan be used as a calibration scale factor to correct future pedometermeasurements by scaling the estimated distance by the ratio. Process 700continues by storing the calibration factor (706). The calibration canbe performed each time the user uses a treadmill.

Example Calorie Expenditure Models That Use Fitness Machine Data

An effective and accurate way of calculating caloric expenditure for auser is through the use of oxygen uptake VO₂. VO₂ is a good indicator ofexercise intensity because it is tied closely to energy expenditure. Thehigher the intensity, the more oxygen a user consumes and the morecalories the user burns. American College of Sports Medicine (ACSM)provides VO₂ models that can be used to predict caloric expenditure forvarious types of fitness machines (e.g., treadmill, rower, stairclimber, indoor bike, elliptical). For example, for walking,VO₂=(0.1×speed)+(1.8×speed×grade)+3.5. This equation is appropriate forfairly slow speed ranges—from 1.9 to approximately 4 miles per hour(mph). Speed is calculated in meters per minute (m/min). The numbers 0.1and 1.8 are constants that refer to the following: 0.1=oxygen cost permeter of moving each kilogram (kg) of body weight while walking(horizontally) and 1.8=oxygen cost per meter of moving total body massagainst gravity (vertically). For running, theVO₂=(0.2×speed)+(0.9×speed×grade)+3.5. This equation is appropriate forspeeds greater than 5.0 mph (or 3.0 mph or greater if the subject istruly jogging). Speed is calculated in m/min. The constants refer to thefollowing: 0.2=oxygen cost per meter of moving each kg of body weightwhile running (horizontally) and 0.9=oxygen cost per meter of movingtotal body mass against gravity (vertically). These ACSM models,however, are often inaccurate because they were developed using a fewadult men of average height. The wearable computer described herein canprovide more accurate caloric expenditure calculations by using fitnessmachine data, such as speed and grade data provided by a treadmillmachine, and then applying new models to the fitness machine data tocalculate more accurate caloric expenditure for the fitness machineuser.

In the description that follows, calorimetry modeling is used to improvework rate (WR) calorie estimates based on fitness machine input forparameters, such as speed, elevation, etc. calorimetry modeling alsoimproves the estimation of VO₂ max by calibrating VO₂ max when a user isin a fitness machine workout session.

Example Data Flows

FIG. 8A is a block diagram of data flow for determining caloricexpenditure based on treadmill data, according to an embodiment. System800 includes fitness machine 101 in wireless communication with wearablecomputer 102, which operate as described in reference to FIGS. 1-7 .Wearable computer 102 includes software that implements the data flow.In the example shown, fitness machine 101 is a treadmill and providestreadmill data (e.g., distance, pace, incline) calculated by a treadmillcomputer to wearable computer 102.

Wearable computer 102 includes one or more inertial sensors 801 (e.g.,an accelerometer, gyroscope) that provide sensor data (e.g.,accelerations, angular rates) to digital pedometer 802. Digitalpedometer 802 uses the sensor data to determine a step count of theuser. Stride calibrator 804 calculates a calibration factor based on thetreadmill data (e.g., considered truth data) and the pedometer outputdata (e.g., considered estimated data). The calibration factor isapplied to the pedometer output data, and the calibrated pedometeroutput data is displayed as workout session data on a display ofwearable computer 102, or sent back to treadmill 101 for display, orsent to another device for display or storage.

In an embodiment, stride calibrator 804 calculates a calibrated stridelength that is input into work rate calorie model 805. A work rate canbe calculated for each type of fitness machine. For treadmill 101, theapplied power output or work rate (WR) can be calculated using thetreadmill data. Generically, WR=f(energy the machine is calculating),where f(.) denotes a function of the parameter(s) within parentheses.For a treadmill, WR=f(pace)*g(grade correction), and for a stationarybike WR=f(speed)*g(resistance). In the example shown, work rate caloriemodel 805 calculates the caloric expenditure (in METs) of the user basedon the work rate calculated using the treadmill data (e.g., using paceand grade). The work rate METs can then be input into VO₂ max calibrator807 as an implicit estimate of VO₂. Optical sensors 806 in wearablecomputer 102 provide heart rate data as another input into VO₂ Maxcalibrator 807. VO₂ max calibrator 807 uses the implicit estimate of VO₂and the heart rate data to calibrate VO₂ max. The heart rate data andthe calibrated VO₂ max are then input into heart rate calorie model 808.Heart rate calorie model 808 calculates the caloric expenditure (inMETs) of the user based on the user's heart rate data and the calibratedVO₂ max. The work rate METs and the heart rate METs can be displayed asworkout session data on wearable computer 102 or sent back over thecommunication connection to treadmill 101 to be displayed, or can besent to another device for display or storage.

In an embodiment, WR and HR calorie expenditure values (MET values) areestimated over successive, non-overlapping intervals of time referred toherein as “epochs.” In an embodiment, an “epoch” can be x seconds (e.g.,2.56 seconds, corresponding to 256 samples of accelerometer sensor datasampled at 100 Hz). Over each epoch, a single MET value is reported,which is the best estimate of METs expended by the user. This best METestimate is chosen by arbitration logic which compares the magnitude ofthe MET values for work rate and heart rate, and the confidenceassociated with each of those values. For example, the heart rate METvalue could be preferred if it is greater than the work rate MET valueby x % (e.g., 10%). As an example, the user exertion on an incline couldbe under-estimated by work rate METs but tracked more accurately byheart rate METs.

In an embodiment, two calibration methods are implemented by calibrator804: a cadence-based look-up table and an accelerometer-energy method.The cadence-based look-up table includes cadence and stride length (SL),where cadence=Steps/unit_time, SL=D/Steps, Steps is the step countcalculated by wearable computer 102 and D is the truth distance receivedfrom the treadmill. In an embodiment, Steps is measured by wearablecomputer 102 using sensor data. Under a constant cadence, cadence ishighly correlated with SL. When the user is not on treadmill 101,wearable computer 102 can use the current cadence to look-up SL from thecadence-based look-up table.

In the accelerometer-energy method, wearable computer 102 calculates anuncalibrated SL (SL_uncal) based on a function of the acceleration data(SL_uncal=f(accel)). An uncalibrated distance (D_uncalibrated) is thencalculated from Steps and SL_uncal, such thatD_uncalibrated=Steps*SL_uncal andPace_uncalibrated=time/(Steps*SL_uncap. While the user is on treadmill101, a calibration factor is calculated as Kval=D/D_uncalibrated. Whenthe user is off treadmill 101, D calibrated=Steps*SL_uncal*Kval. Forboth the cadence-based look-up table and the accelerometer-energymethod, grade can be included. Also, a separate cadence-based look-uptable can be used for walking and running.

Any desired model can be used for work rate calorie model 805. In anembodiment, a quadratic model can be used for walking and a linear modelfor running, where a switch from the quadratic model to the linear modelat a specified speed (e.g., 4.5 mph) and the quadratic model is based onthe user's height. The quadratic model accounts for the difference instride length when transitioning from walking to running. In anembodiment, walking METs are computed as: METs=k*(a*s²+b*s+c), wheres=speed in miles/hour, k is a grade correction factor, such that k=1 onflat (zero uphill grade) and k>1 if uphill grade is detected, and a, b,c are constants that can be determined empirically. Run METs arecomputed as: METs=k*(a*s+c). The speed at which the model switches fromwalk to run METs is determined in the range of 4.2-4.8 miles/hour as afunction of the user's height.

Any desired model can be used for heart rate calorie model 808. In anembodiment, HR calorie model 808 linearly scales VO₂ max output from VO₂max calibrator 807 by a fractional heart rate (heart rate normalized bythe user's observed minimum and maximum heart rates). VO₂ max can beestimated using any known method. For example, usingUth-Sørensen-Overgaard-Pedersen estimation VO₂ max can be estimatedusing the following equation.

${{{VO}_{2}\max} \approx {\frac{HR_{\max}}{HR_{rest}} \times 15.3\frac{mL}{{kg} \cdot {minute}} \times 15.3\mspace{14mu}{{mL}/{kg}}}},$where HR_(max) is the maximum heart rate and HR_(rest) is the restingheart rate.

FIG. 8B is a block diagram of a data flow performed by a wearablecomputer for determining calories burned based on data from anelliptical, indoor bike, rower or stair climber, according to anembodiment. System 800 includes fitness machine 101 in wirelesscommunication with wearable computer 102, which operate as described inreference to FIGS. 1-7 . Wearable computer 102 includes software thatimplements the data flow.

WR calorie model 805 takes as input fitness machine data and outputs anestimate of work rate (in METs). The details of the treadmill WR caloriemodel were previously described above. If fitness machine 101 is anelliptical, indoor cycle or rower, than fitness machine data includesresistance, stride/stroke count and power. If the fitness machine 101 isa stair climber, the fitness machine data includes stride count andelevation gain. For an indoor cycle, METs are a linear function of thepower (normalized by user weight). In an embodiment,METs=a*normalized_power +c, and power is a function of user-selectedresistance level and cadence, and user weight. Elliptical and rower METsare a function of power, cadence and resistance level, similar to theindoor cycle. Stair climber METs are a function of elevation gain andstep cadence.

Example Process

FIG. 9 is a flow diagram of an example process 900 performed by awearable computer to determine calories burned based on data from atreadmill, according to an embodiment. Process 900 can be implementedusing the wearable computer architecture 1000 disclosed in reference toFIG. 10 .

Process 900 begins by establishing, by a processor of a wirelesswearable computer worn by a user, a wireless communication connectionwith a fitness machine (901). Process 900 continues by obtaining, by theprocessor using the communication connection, machine data from thefitness machine while the user is engaged in a workout session on thefitness machine (902). Process 900 continues by obtaining, from one ormore motion sensors of the wireless wearable device, motion datagenerated in response to motion of the user on the fitness machine(903). Process 900 continues by obtaining, from a heart rate sensor ofthe wireless device, heart rate data of the user (904). Process 900continues by determining, by a digital pedometer of the wearablecomputer, pedometer output data based on the motion data (905). Process900 continues by determining, by the processor, a stride length of theuser based on the pedometer output data and the machine data (906).Process 900 continues by determining, by the processor, a work ratebased on the machine data (907). Process 900 continues by determining,by the processor, a work rate caloric expenditure by applying a workrate calorie model to the work rate (908). Process 900 continues bydetermining, by the processor, a maximal oxygen consumption of the userbased on the heart rate data and the work rate caloric expenditure(909). Process 900 continues by determining, by the processor, a heartrate caloric expenditure by applying a heart rate calorie model to theheart rate data and the maximal oxygen consumption (910). Process 900continues by sending, by the processor to the treadmill via thecommunication connection, at least one of the work rate caloricexpenditure or the heart rate caloric expenditure (911).

Exemplary Wearable Computer Architecture

FIG. 10 illustrates example wearable computer architecture 1000implementing the features and operations described in reference to FIGS.1-9 . Architecture 1000 can include memory interface 1002, one or moredata processors, image processors and/or processors 1004 and peripheralsinterface 1006. Memory interface 1002, one or more processors 1004and/or peripherals interface 1006 can be separate components or can beintegrated in one or more integrated circuits.

Sensors, devices and subsystems can be coupled to peripherals interface1006 to provide multiple functionalities. For example, one or moremotion sensors 1010, light sensor 1012 and proximity sensor 1014 can becoupled to peripherals interface 1006 to facilitate motion sensing(e.g., acceleration, rotation rates), lighting and proximity functionsof the wearable computer. Location processor 1015 can be connected toperipherals interface 1006 to provide geo-positioning. In someimplementations, location processor 1015 can be a GNSS receiver, such asthe Global Positioning System (GPS) receiver. Electronic magnetometer1016 (e.g., an integrated circuit chip) can also be connected toperipherals interface 1006 to provide data that can be used to determinethe direction of magnetic North. Electronic magnetometer 1016 canprovide data to an electronic compass application. Motion sensor(s) 1010can include one or more accelerometers and/or gyros configured todetermine change of speed and direction of movement of the wearablecomputer. Barometer 1017 can be configured to measure atmosphericpressure around the mobile device.

Heart rate monitoring subsystem 1020 for measuring the heartbeat of auser who is wearing the computer on their wrist. In an embodiment,subsystem 1020 includes LEDs paired with photodiodes for measuring theamount of light reflected from the wrist (not absorbed by the wrist) todetect a heartbeat.

Communication functions can be facilitated through wirelesscommunication subsystems 1024, which can include radio frequency (RF)receivers and transmitters (or transceivers) and/or optical (e.g.,infrared) receivers and transmitters. The specific design andimplementation of the communication subsystem 1024 can depend on thecommunication network(s) over which a mobile device is intended tooperate. For example, architecture 1000 can include communicationsubsystems 1024 designed to operate over a GSM network, a GPRS network,an EDGE network, a Wi-Fi™ network and a Bluetooth™ network. Inparticular, the wireless communication subsystems 1024 can includehosting protocols, such that the mobile device can be configured as abase station for other wireless devices.

Audio subsystem 1026 can be coupled to a speaker 1028 and a microphone1030 to facilitate voice-enabled functions, such as voice recognition,voice replication, digital recording and telephony functions. Audiosubsystem 1026 can be configured to receive voice commands from theuser.

I/O subsystem 1040 can include touch surface controller 1042 and/orother input controller(s) 1044. Touch surface controller 1042 can becoupled to a touch surface 1046. Touch surface 1046 and touch surfacecontroller 1042 can, for example, detect contact and movement or breakthereof using any of a plurality of touch sensitivity technologies,including but not limited to capacitive, resistive, infrared and surfaceacoustic wave technologies, as well as other proximity sensor arrays orother elements for determining one or more points of contact with touchsurface 1046. Touch surface 1046 can include, for example, a touchscreen or the digital crown of a smart watch. I/O subsystem 1040 caninclude a haptic engine or device for providing haptic feedback (e.g.,vibration) in response to commands from processor 1004. In anembodiment, touch surface 1046 can be a pressure-sensitive surface.

Other input controller(s) 1044 can be coupled to other input/controldevices 1048, such as one or more buttons, rocker switches, thumb-wheel,infrared port and USB port The one or more buttons (not shown) caninclude an up/down button for volume control of speaker 1028 and/ormicrophone 1030. Touch surface 1046 or other controllers 1044 (e.g., abutton) can include, or be coupled to, fingerprint identificationcircuitry for use with a fingerprint authentication application toauthenticate a user based on their fingerprint(s).

In one implementation, a pressing of the button for a first duration maydisengage a lock of the touch surface 1046; and a pressing of the buttonfor a second duration that is longer than the first duration may turnpower to the mobile device on or off. The user may be able to customizea functionality of one or more of the buttons. The touch surface 1046can, for example, also be used to implement virtual or soft buttons.

In some implementations, the mobile device can present recorded audioand/or video files, such as MP3, AAC and MPEG files. In someimplementations, the mobile device can include the functionality of anMP3 player. Other input/output and control devices can also be used.

Memory interface 1002 can be coupled to memory 1050. Memory 1050 caninclude high-speed random access memory and/or non-volatile memory, suchas one or more magnetic disk storage devices, one or more opticalstorage devices and/or flash memory (e.g., NAND, NOR). Memory 1050 canstore operating system 1052, such as the iOS operating system developedby Apple Inc. of Cupertino, California Operating system 1052 may includeinstructions for handling basic system services and for performinghardware dependent tasks. In some implementations, operating system 1052can include a kernel (e.g., UNIX kernel).

Memory 1050 may also store communication instructions 1054 to facilitatecommunicating with one or more additional devices, one or more computersand/or one or more servers, such as, for example, instructions forimplementing a software stack for wired or wireless communications withother devices. Memory 1050 may include graphical user interfaceinstructions 1056 to facilitate graphic user interface processing;sensor processing instructions 1058 to facilitate sensor-relatedprocessing and functions; phone instructions 1060 to facilitatephone-related processes and functions; electronic messaging instructions1062 to facilitate electronic-messaging related processes and functions;web browsing instructions 1064 to facilitate web browsing-relatedprocesses and functions; media processing instructions 1066 tofacilitate media processing-related processes and functions;GNSS/Location instructions 1068 to facilitate generic GNSS andlocation-related processes and instructions; and heart rate instructions1070 to facilitate hear rate measurements. Memory 1050 further includesactivity application instructions for performing the features andprocesses described in reference to FIGS. 1-9 .

Each of the above identified instructions and applications cancorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. Memory 1050 can includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the mobile device may be implemented in hardware and/or insoftware, including in one or more signal processing and/or applicationspecific integrated circuits.

The described features can be implemented advantageously in one or morecomputer programs that are executable on a programmable system includingat least one programmable processor coupled to receive data andinstructions from, and to transmit data and instructions to, a datastorage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that can be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program can be written in anyform of programming language (e.g., SWIFT, Objective-C, C#, Java),including compiled or interpreted languages, and it can be deployed inany form, including as a stand-alone program or as a module, component,subroutine, a browser-based web application, or other unit suitable foruse in a computing environment.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular embodiments of particular inventions.Certain features that are described in this specification in the contextof separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable sub combination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to a subcombination or variation of a sub combination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

As described above, some aspects of the subject matter of thisspecification include gathering and use of data available from varioussources to improve services a mobile device can provide to a user. Thepresent disclosure contemplates that in some instances, this gathereddata may identify a particular location or an address based on deviceusage. Such personal information data can include location-based data,addresses, subscriber account identifiers, or other identifyinginformation.

The present disclosure further contemplates that the entitiesresponsible for the collection, analysis, disclosure, transfer, storage,or other use of such personal information data will comply withwell-established privacy policies and/or privacy practices. Inparticular, such entities should implement and consistently use privacypolicies and practices that are generally recognized as meeting orexceeding industry or governmental requirements for maintaining personalinformation data private and secure. For example, personal informationfrom users should be collected for legitimate and reasonable uses of theentity and not shared or sold outside of those legitimate uses. Further,such collection should occur only after receiving the informed consentof the users. Additionally, such entities would take any needed stepsfor safeguarding and securing access to such personal information dataand ensuring that others with access to the personal information dataadhere to their privacy policies and procedures. Further, such entitiescan subject themselves to evaluation by third parties to certify theiradherence to widely accepted privacy policies and practices.

In the case of advertisement delivery services, the present disclosurealso contemplates embodiments in which users selectively block the useof, or access to, personal information data. That is, the presentdisclosure contemplates that hardware and/or software elements can beprovided to prevent or block access to such personal information data.For example, in the case of advertisement delivery services, the presenttechnology can be configured to allow users to select to “opt in” or“opt out” of participation in the collection of personal informationdata during registration for services.

Therefore, although the present disclosure broadly covers use ofpersonal information data to implement one or more various disclosedembodiments, the present disclosure also contemplates that the variousembodiments can also be implemented without the need for accessing suchpersonal information data. That is, the various embodiments of thepresent technology are not rendered inoperable due to the lack of all ora portion of such personal information data. For example, content can beselected and delivered to users by inferring preferences based onnon-personal information data or a bare minimum amount of personalinformation, such as the content being requested by the deviceassociated with a user, other non-personal information available to thecontent delivery services, or publically available information.

What is claimed is:
 1. A method comprising: establishing, by one or moreprocessors of a wireless wearable computer worn by a user, a wirelesscommunication connection with a fitness machine; obtaining, by the oneor more processors using the wireless communication connection, machinedata from the fitness machine while the user is engaged in a workoutsession on the fitness machine, the machine data comprising first datathat describes the fitness machine and second data that describesfitness metrics associated with the workout session and that arespecific to the fitness machine; obtaining, from a heart rate sensor ofthe wireless wearable computer, heart rate data of the user;determining, by the one or more processors, a work rate caloricexpenditure by applying a work rate calorie model to the machine data;determining, by the one or more processors, a calibrated maximal oxygenconsumption of the user based on the heart rate data and the work ratecaloric expenditure; determining, by the one or more processors, a heartrate caloric expenditure by applying a heart rate calorie model to theheart rate data and the calibrated maximal oxygen consumption of theuser; and sending, by the one or more processors, at least one of thework rate caloric expenditure or the heart rate caloric expenditure, tothe fitness machine or other device, or storing at least one of the workrate caloric expenditure or heart rate caloric expenditure on thewireless wearable computer, the fitness machine or the other device. 2.The method of claim 1, wherein determining the heart rate caloricexpenditure is performed without reference to motion data collected byone or more motion sensors of the wireless wearable computer in responseto motion of the user on the fitness machine.
 3. The method of claim 1,wherein the machine data includes two or more of resistance, stridecount, stroke count, power, or elevation gain.
 4. The method of claim 1,wherein the fitness machine is a treadmill and the machine data includesat least one of speed, pace, incline, grade or distance traveled.
 5. Themethod of claim 1, wherein the fitness machine is a stationary bike,elliptical, or rower and the machine data includes at least one ofresistance, stride length, stroke count, or power.
 6. The method ofclaim 1, wherein the fitness machine is a stair climber and the fitnessdata includes at least one of stride count or elevation gain.
 7. Themethod of claim 1, wherein the work rate and heart rate MET areestimated over successive, non-overlapping intervals of time.
 8. Themethod of claim 1, wherein sending, by the one or more processors to thefitness machine via the communication connection, at least one of thework rate caloric expenditure or the heart rate caloric expenditure,further comprises: comparing magnitudes of the work rate and heartcalorie expenditure values; and sending to the fitness machine thecalorie expenditure with the largest magnitude as user calories burned.9. The method of claim 1, wherein a quadratic work rate calorie model isused for walking and a linear work rate calorie model is used forrunning.
 10. The method of claim 9, wherein the linear model is invokedat a specified speed of the user and the quadratic model is based on theuser's height.
 11. A wireless wearable computer, comprising: one or moremotion sensors; a heart rate sensor; one or more processors; memorystoring instructions that when executed by the one or more processors,cause the one or more processors to perform operations comprising:establishing a wireless communication connection with a fitness machine;obtaining, using the communication connection, machine data from thefitness machine while a user is engaged in a workout session on thefitness machine and wearing the wireless wearable computer, the machinedata comprising first data that describes the fitness machine and seconddata that describes fitness metrics associated with the workout sessionand that are specific to the fitness machine; obtaining, from the heartrate sensor, heart rate data of the user; determining a work ratecaloric expenditure by applying a work rate calorie model to the machinedata; determining a calibrated maximal oxygen consumption of the userbased on the heart rate data and the work rate caloric expenditure;determining a heart rate caloric expenditure by applying a heart ratecalorie model to the heart rate data and the calibrated maximal oxygenconsumption of the user; and sending to the fitness machine or otherdevice, at least one of the work rate caloric expenditure or the heartrate caloric expenditure, or storing at least one of the work ratecaloric expenditure or the heart rate caloric expenditure on thewireless wearable computer, the fitness machine or the other device. 12.The wireless wearable computer of claim 11, wherein determining theheart rate caloric expenditure is performed without reference to motiondata collected by the one or more motion sensors in response to motionof the user on the fitness machine.
 13. The wireless wearable computerof claim 12, wherein the machine data includes two or more ofresistance, stride count, stroke count, power, or elevation gain. 14.The wireless wearable computer of claim 11, wherein the fitness machineis a treadmill and the machine data includes at least one of speed,pace, incline, grade or distance traveled.
 15. The wireless wearablecomputer of claim 11, wherein the fitness machine is a stationary bike,elliptical, or rower and the machine data includes at least one ofresistance, stride length, stroke count, or power.
 16. The wirelesswearable computer of claim 11, wherein the fitness machine is a stairclimber and the fitness data includes at least one of stride count orelevation gain.
 17. The wireless wearable computer of claim 11, whereinthe work rate and heart rate MET are estimated over successive,non-overlapping intervals of time.
 18. The wireless wearable computer ofclaim 11, wherein sending to the fitness machine, via the communicationconnection, at least one of the work rate caloric expenditure or theheart rate caloric expenditure, further comprises: comparing magnitudesof the work rate and heart calorie expenditure values; and sending tothe fitness machine the calorie expenditure with the largest magnitudeas user calories burned.
 19. The wireless wearable computer of claim 11,wherein a quadratic work rate calorie model is used for walking and alinear work rate calorie model is used for running.
 20. The wirelesswearable computer of claim 19, wherein the linear model is invoked at aspecified speed of the user and the quadratic model is based on theuser's height.